This disclosure relates generally to the field of graphics processing, and more particularly to the field of providing a system activity visualization tool.
Graphics processor units (GPUs) have become important for processing data-parallel graphics tasks. Developers now recognize that non-graphics data-parallel tasks can also be handled by GPUs, taking advantage of their massive parallel capabilities. Vendors and standards organizations have created application programming interfaces (APIs) that make graphics data-parallel tasks easier to program because of the high level of developer programming interaction. However, there are also low-level APIs (libraries/frameworks, etc.) that reside closer to hardware and are generally employed by applying the output of the higher level APIs. In other words, the higher level APIs generally simply prepare program code for application to the lower level APIs.
Graphics commands generally run through a GPU pipeline, which may include various levels between an application (software) and the hardware used to execute that software. At various locations in the pipeline, a graphics command may generate events. In order for a developer to get a good understanding about what is happening in the pipeline, a thread-based operation is often used. However, due to the processing capabilities of the GPU, a thread-based snapshot may not be sufficient to provide a holistic picture for a developer regarding work being performed in the GPU pipeline.